<?php
echo "<pre>";

class MonException extends Exception {
	public function __toString() {
    $str="\nException [";
	$str.="\n\tClasse: ".__CLASS__ ;
	$str.="\n\tMessage: ".$this->getMessage();
	$str.="\n\tFichier: ".$this->getFile()."(".$this->getLine().")";
	$str.="\n\tPile d'appel: \n".$this->getTraceAsString();
	$str.="\n]";
	return $str;
  }
}

function envoyerException($raison) {
	throw new Exception("Envoi exception pour raison($raison)");
}

function envoyerMonException($raison) {
	throw new MonException("Envoi de mon exception pour raison($raison)");
}

try {
	echo "Traitement 1\n";
	envoyerException("Probleme entre les traitements");
	echo "Traitement 2\n";
} catch (Exception $e) {
	echo "\nException recuperee : \n\t\t".$e;
}

echo "\n\n######################################";
try {
	echo "\nTraitement 3\n";
	envoyerMonException("Probleme entre les traitements bis repetita");
	echo "\nTraitement 4\n";
} catch (Exception $e) {
	echo "\nException recuperee : \n\t\t".$e;
}
	


echo "</pre>";
?>